/*
java.util.Date;  表示日期和时间的类
类 Date 表示特定的瞬间，精确到毫秒

把日期转换为毫秒：
      时间原点（0ms）：1970年 1月1日 00：00：00（格林尼治时间）
      就是计算当卡日期到时间原点一共经历了多少毫秒

把毫秒转换成日期：
    1天 = 24 x 60 x 60 = 86400s = 86400000ms

    ps.中国属于东八区，要把标准时间加上8小时
*/

public class demo {

    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());//获取系统到时间原点前经历了多少毫秒

        Date date = new Date();      //空参构造
        System.out.println(date);   //输出系统时间

        Date date = new Date(0L);    //带参构造
        System.out.println(date);   //输出0ms时间，就是前面说的时间原点

        Date date = new Date();
        long time = date.getTime();    //将日期转换成毫秒值
        System.out.println(time);
    }

}


/*
java.text.DateFormat;   是日期、时间格式化子类的抽象类
作用：
    格式化（日期->文本），解析（文本->日期）

java.text.SimpleDateFormat   这个是上面的子类，可以调用

模式：
y 年
M 月
d 日
H 时
m 分
s 秒
 */

public class demo2{

    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat(yyyy年MM月dd日 HH时mm分ss秒);   //用上面字母表示时间，但是其他的可以变
        Date date = new Date();
        String d = sdf.format(date);            //对上面给定的模式进行格式化
        System.out.println(d);                 //如上面格式
    }

}


public class demo3 throws ParseException/*如果输入了和格式不一样的字符串，则抛出问题，这一段是必要的*/{

        SimpleDateFormat sdf=new SimpleDateFormat(yyyy年MM月dd日 HH时mm分ss秒);
        Date date=sdf.parse(yyyy年MM月dd日 HH时mm分ss秒);       //parse可以将固定形式的语句转换成为ms
        System.out.println(date);

}


/*
java.util.Calendar;   日历类
Calendar类是一个抽象类，里面提供了很多操作日历字段的方法（YEAR MONTH DAY_OF_MONTH HOUR）

 */



public class Demo3{

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();  //多态
        System.out.println(c);                //可以提看到被重写了方法（创建时的日期）

        //常用方法
        int year = c.get(Calendar.YEAR);  //获取年
        int month = c.get(Calendar.MONTH);   //获取月（0-11，需要加上1才是正确年份）
        (DAY_OF_MONTH);     //这个月的天数


        c.set(Calendar.。。。,999);      //设置日历中年月日为多少

        c.add(Calendar.。。。,2 or -2)    //增加特定的东西的值，正为增加，负为减小

        Date date = c.getTime();         //取得当前日历记录的时间
        System.out.println(date);        //输出当前日历的时间


    }

}